package com.yungu.swift.assets.driver.service;

import com.yungu.swift.assets.driver.model.dto.DriverCashDto;
import com.yungu.swift.assets.driver.model.dto.DriverWithdrawalDto;
import com.yungu.swift.assets.driver.model.param.AdminDriverCashBillPageParam;
import com.yungu.swift.assets.driver.model.param.AdminDriverCashParam;
import com.yungu.swift.base.ResponseData;
import com.yungu.swift.base.model.PageVo;
import com.yungu.swift.base.model.admin.AdminUuidParam;
import com.yungu.swift.base.service.BaseService;

import java.util.List;


/**
 * Copyright © 厦门云谷互联信息有限公司 2018-2020 All Right Reserved
 * <p>
 * 司机提现业务逻辑接口
 *
 * @author Zerrion
 * @version 1.0.0-RELEASE
 * @since 2018-07-05 16:23
 */
public interface DriverCashService extends BaseService<DriverCashDto> {

    /**
     * 申请提现
     *
     * @param uuid
     * @param collectType
     * @param collectAccount
     * @param cash
     * @param poundage
     * @return AjaxList
     */
    ResponseData<Boolean> addCash(String uuid, Integer collectType, String collectAccount, Double cash, Double poundage);


    /**
     * 后台管理： 提现审核
     *
     * @param driverCashParam
     * @return
     */
    ResponseData<Boolean> reviewCash(AdminDriverCashParam driverCashParam);

    /**
     * 后台管理：司机提现账单
     *
     * @param cashOutPageParam 提现分页字段
     * @return map
     */
    ResponseData<PageVo<DriverWithdrawalDto>> cashBillPage(AdminDriverCashBillPageParam cashOutPageParam);

    /**
     * 提现账单导出查询
     *
     * @param cashOutPageParam 提现导出字段
     * @return
     */
    ResponseData<List<DriverWithdrawalDto>> cashBillExport(AdminDriverCashBillPageParam cashOutPageParam);

    /**
     * 提现打款
     *
     * @param driverCashParam
     * @return
     */
    ResponseData<Boolean> remit(AdminDriverCashParam driverCashParam);

    /**
     * 重新打款
     *
     * @return
     */
    ResponseData<Boolean> repay(AdminUuidParam adminUuidParam);

    /**
     * 取消打款
     *
     * @param uuidParam
     * @return
     */
    ResponseData<Boolean> cancelPay(AdminUuidParam uuidParam);
}